#include <stdio.h>

//常量：不可改
//C因为他的地址操作原则
//提供两种常量方案出来
//1.不允许改地址在内存中的数据
//2.不允许修改地址

//指针常量，目的：固化地址，但是可以操作地址指向内部的内容
int test1(){
    int a,b;
    int* const p=&a; //指针常量
    // 那么分为一下两种操作
    *p=9;//操作成功
//    p=&b;//操作错误,
    printf("p:%d\n",*p);
    // 因为声明了指针常量，说明指针变量不允许修改。如同次指针指向一个地址该地址不能被修改，但是该地址里的内容可以被修改

}

//常量指针，目的：固化地址内部数据内容，但是可以操作地址
int test2(){
    int a = 5,b = 15;
    const int* p=&a; //常量指针
    // 那么分为一下两种操作
//    *p=9;//操作错误
    p=&b;//操作成功
    //因为常量指针本质是指针，并且这个指针是一个指向常量的指针，指针指向的变量的值不可通过该指针修改，但是指针指向的值可以改变。
    printf("p:%d\n",*p);
}

int main() {

    test1();
    test2();
    return 0;
}


